<?php
Class Mtarjeta extends CI_Model {

    /**
     * Obtiene las tarjetas que están asociadas a una cuenta
     *
     * @param int $cuenta
     * @return resultado de la query
     */
    public function obtenerTarjetas($cuenta) {
        $this->db->select('tarjeta.id, tarjeta.codigo, tarjeta.fechaCaducidad, concat(cliente.nombre, " ", cliente.apellidos) as titular, cuenta.saldo', false);
        $this->db->from('tarjeta, cuenta, cuentacliente, cliente');
        $this->db->where('tarjeta.idCuenta = cuenta.id');
        $this->db->where('cuenta.id = cuentacliente.idCuenta');
        $this->db->where('cuentacliente.idCliente = cliente.id');
        $this->db->where('tarjeta.idCuenta = ' . $cuenta);
        $tarjetas = $this->db->get();
        return $tarjetas->result();
    }

    /**
     * Obtiene las cuentas que le pertenecen a un cliente.
     *
     * @param int $idCliente
     * @return resultado de la query
     */
    public function obtenerCuentas($idCliente) {
        $this->db->select('cuenta.id, cuenta.codigoEntidad, cuenta.codigoOficina, cuenta.codigoControl, cuenta.codigoCuenta');
        $this->db->from('cuenta, cuentacliente');
        $this->db->where('cuenta.id = cuentacliente.idCuenta');
        $this->db->where('cuentacliente.idCliente = ' . $idCliente);
        return $this->db->get()->result();
    }

    /**
     * Obtiene las tarjetas que están asociadas a una cuenta y a un cliente
     *
     * @param int $idCliente
     * @param int $idCuenta
     * @return resultado de la query
     */
    public function listadoTarjetas($idCliente, $idCuenta) {
        $this->db->select('t.codigo, c.nombre, cu.saldo, t.fechaCaducidad, cu.id');
        $this->db->from('tarjeta t, cliente c, cuenta cu, cuentacliente cc');
        $this->db->where('t.idCuenta = cc.idCuenta');
        $this->db->where('t.idCliente = cc.idCliente');
        $this->db->where('cu.id = cc.idCuenta');
        $this->db->where('cc.idCliente = c.id');
        $this->db->where('cu.id = ' . $idCuenta);
        $this->db->where('t.idCliente = ' . $idCliente);
        return $this->db->get()->result();
    }

    /**
     * Formaliza la solicitud de la tarjeta
     *
     * @param int $idCuenta
     * @param int $idCliente
     */
    public function solicitarTarjeta($idCuenta, $idCliente) {
        $this->db->query("insert into solicitud(idTipoSolicitud, idCuenta, idCliente) values (1,".$idCuenta.",". $idCliente.")");
    }

}